package com.ruoyi.system.domain.module.estate;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 工资条对象 pay_slip
 *
 * @author ruoyi
 * @date 2025-03-24
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("pay_slip")
public class PaySlip implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /**
     * 真实姓名
     */
	@Excel(name = "真实姓名")
    private String realName;

    /**
     * 电话号码
     */
	@Excel(name = "手机号")
    private String phoneNum;

    /**
     * 所属工种
     */
	@Excel(name = "工种")
    private String workType;

    /**
     * 基本工资
     */
	@Excel(name = "基本工资")
    private BigDecimal basicSalary;

    /**
     * 绩效工资
     */
	@Excel(name = "绩效工资")
    private BigDecimal meritsSalary;

    /**
     * 其他补贴
     */
	@Excel(name = "其他补贴")
    private BigDecimal otherSubsidies;

    /**
     * 社保补贴
     */
	@Excel(name = "社会保险协议补贴")
    private BigDecimal insuranceSubsidy;

	/**
	 * 补发工资
	 */
	@Excel(name = "补发工资")
	private BigDecimal retroactiveWages;

    /**
     * 加班费用
     */
	@Excel(name = "加班费")
    private BigDecimal overtimeSalary;

    /**
     * 夜班工资
     */
	@Excel(name = "夜班补助")
    private BigDecimal nightShiftSalary;

    /**
     * 证书补助
     */
	@Excel(name = "证书补助")
    private BigDecimal certificateSubsidy;

    /**
     * 出勤天数
     */
	@Excel(name = "出勤天数")
    private BigDecimal attendance;

    /**
     * 事假天数
     */
	@Excel(name = "事假天数")
    private BigDecimal absence;

    /**
     * 事假扣款
     */
	@Excel(name = "事假扣款")
    private BigDecimal absenceDeduction;

    /**
     * 个人保险
     */
	@Excel(name = "个人保险")
    private BigDecimal insurance;

    /**
     * 个税扣款
     */
	@Excel(name = "个人所得税")
    private BigDecimal tax;

    /**
     * 其他扣款
     */
	@Excel(name = "其他扣款")
    private BigDecimal otherDeduction;

    /**
     * 工装扣款
     */
	@Excel(name = "工装扣款")
    private BigDecimal clothesDeduction;

    /**
     * 累计扣款
     */
	@Excel(name = "合计扣款")
    private BigDecimal totalDeduction;

    /**
     * 实发工资
     */
	@Excel(name = "实际应发")
    private BigDecimal netSalary;

	/**
	 * 状态 0-未确认  1-已确认  2-取消确认
	 */
	private Integer state;

	/**
	 * 绑定的微信用户id
	 */
	private Integer wxUserId;

	/**
	 * 绑定的管理员用户id
	 */
	private Integer sysUserId;

	/**
	 * 年份
	 */
	@Excel(name = "年份")
	private String yearNum;

	/**
	 * 月份
	 */
	@Excel(name = "月份")
	private String monthNum;

	/**
	 * 添加时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	/**
	 * 签字时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date signTime;

	/**
	 * 签字图片
	 */
	private String signImgUrl;

	/**
	 * 微信昵称
	 */
	@TableField(exist = false)
	private String wxUserName;

	/**
	 * 账户名
	 */
	@TableField(exist = false)
	private String sysUserName;

}
